package com.pyl.admin.system.service;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.service.IService;
import com.github.pagehelper.PageInfo;
import com.pyl.admin.core.enums.StatusEnum;
import com.pyl.admin.system.entity.SysUser;
import com.pyl.admin.system.validator.UserForm;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author 灵魂贰婶
 * @since 2019-06-28
 */
public interface SysUserService extends IService<SysUser> {

	/**
	 * 根据条件分页查询
	 * 
	 * @param current  当前页
	 * @param userName 用户名
	 * @param deptId   部门id
	 * @return
	 */
	PageInfo<SysUser> selectUserListPage(Integer current, String userName, Long deptId);

	/**
	 * 保存或新增用户
	 * 
	 * @param userForm 校验
	 * @return
	 */
	boolean saveOrUpdate(UserForm userForm);

	/**
	 * 根据用户id查询角色
	 * 
	 * @param id 用户id
	 * @return
	 */
	SysUser selectUserAndRoleById(Long id);

	/**
	 * 修改用户状态
	 * 
	 * @param statusEnum 状态
	 * @param idList     用户id
	 * @return
	 */
	boolean updateStatus(StatusEnum statusEnum, List<Long> idList);

	
	/**
	 * 根据roleid 查询user
	 * 
	 * @param valueOf
	 * @return
	 */
	List<SysUser> selectLocalUserByRoleId(@Param("roleId") String roleId);
	
	/**
	 * 根据用户名查询用户
	 * @param username
	 * @param status 
	 * @return
	 */
	SysUser selectOneByUserName(String username);
	
}
